package com.liner.homework1.second;

import java.util.*;

public class ListDemo {
    public static void main(String[] args) {
        // 1. List集合基本方法的练习：get()、set()、重载remove()、重载add()
        List<String> list = new ArrayList<>();
        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        list.add("five");
        list.add("six");
        System.out.println("初始list集合:" + list);
        System.out.println("获取 list 中下标为 1 的 元素:" + list.get(1));
        System.out.println("修改 list 中下标为 2 的 元素 为 “five”:" + list.set(2, "five"));
        System.out.println("删除 list 中下标为 3 的 元素:" + list.remove(3));
        list.add(4, "six");
        System.out.println("为 list 中下标为 4 添加 “six“ 元素后的集合为:" + list);

        // 2. List集合获取子集方法的练习：subList()
        List<String> subList = list.subList(1, 4);
        System.out.println("获取 list 从 下标 1 到 3的子集:" + subList);

        //   3. 集合排序的练习：对Integer排序、对String排序、对Point排序自定义排序
        List<Integer> integerArrayList = new ArrayList<>();
        integerArrayList.add(12);
        integerArrayList.add(141);
        integerArrayList.add(65);
        integerArrayList.add(87);
        integerArrayList.add(0);
        integerArrayList.add(5462);
        Collections.sort(integerArrayList);
        System.out.println("排序后的integerArrayList: " + integerArrayList);

        List<String> stringArrayList = new ArrayList<>();
        stringArrayList.add("j123");
        stringArrayList.add("bob");
        stringArrayList.add("admin");
        stringArrayList.add("jack");
        stringArrayList.add("alice");
        stringArrayList.add("alice");
        Collections.sort(stringArrayList);
        System.out.println("排序后的stringArrayList: " + stringArrayList);

        List<Point> pointArrayList = new ArrayList<>();
        pointArrayList.add(new Point(1, 2));
        pointArrayList.add(new Point(11, 32));
        pointArrayList.add(new Point(91, 34));
        pointArrayList.add(new Point(51, 23));
        pointArrayList.add(new Point(76, 95));
        pointArrayList.sort((o1, o2) -> o1.getX() - o2.getX());  //根据x升序排列
        System.out.println("排序后的pointArrayList: " + pointArrayList);

        //  4. Set集合及Set去重的练习
        HashSet<String> hashSet = new HashSet<>(stringArrayList);
        System.out.println("将 stringArrayList 集合添加到 hashSet,并完成去重:" + hashSet);




    }

}
